Soru & Cevap

REGİSTRATİON ID nasıl alınır push notification için

27.09.2014 - 04:38

Merhabalar,

Push Notification için registration id dönmesi gerekiyor google bulut servisi kullandım GoogleCloudMessaging ile o id yi almaya çalıştım olmadı , GCMRegistrar ile register olmaya çalıştım yine olmadı internetteki hemen hemen bir çok kodu denedim.. yardımcı olursanız sevinirim şuan yapmak istediğim buttona basınca bu id yi alabilmek.. ( gcm jar ve google play service library kısmını da ekledim eğer ondan oluyor sorun diyecekseniz şimdiden yazıyım dedim)

126 Görüntülenme

6 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

picture-19298-1459404577.jpg
alper_beyler
28.09.2014 - 02:26

[code]

public class MainActivity extends Activity implements OnClickListener{

    public TextView txt;
    public Button bttn;
    GoogleCloudMessaging gcm;
    String PROJECT_NUMBER = "494579369983";
    public String regid;
    @Override
    
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        txt = (TextView)findViewById(R.id.txt_id);
        bttn = (Button)findViewById(R.id.button_ok);
        
        bttn.setOnClickListener(this);
        
    }
    
    public void getRegId()
    {
        
        new AsyncTask<Void, Void, Void>() {
            @Override
            public Void doInBackground(Void... params) {
                
                try
                {
                    if (gcm == null) {
                        gcm = GoogleCloudMessaging.getInstance(getApplicationContext());
                    }
                    regid = gcm.register(PROJECT_NUMBER);
                    
                    txt.setText("Device reg id is: "+regid);
                     

                } catch (IOException ex) {
                    

                }
                return null;
                
            }

            @SuppressWarnings("unused")
            protected void onPostExecute() {
                
            }
            
        }.execute(null, null, null);
        
        
        
        
    }
        
        
    

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

    @Override
    public void onClick(View v) {
        
        getRegId();
        
    }
}

[/code]

[code]

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.deneme_project"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="21" />
    
    
    
    
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />

    <permission android:name="com.example.deneme_project.permission.C2D_MESSAGE"
        android:protectionLevel="signature" />
    <uses-permission android:name="com.example.deneme_project.permission.C2D_MESSAGE" />
    
    

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

[/code]

 

şu getId yi nasıl alıcam şuan server ile ilgili kodlar yok sadece yapmak istediğim şey regId yi alabilmek 

Abdullah
29.09.2014 - 05:08
Bence buradaki sorununuz GCM servera kayıt olmanız gerekiyor. Bakın burada server kısmındaki işlerin nasıl yapıldığı detaylı bir şekilde anlattım. Öncelikle GCM'ye kayıt olduğunuzdan emin olun. http://www.abdullahbalta.com/2014/07/27/android-gcm-ile-push-notification-gonderme/
picture-9388-1408276089.png
tahakirca
28.09.2014 - 01:44

Konu hakkında türkçe kaynak istersen burdaki dersimde ince ayrıntısına kadar anlatmıştım:

http://www.mobilhanem.com/android-google-cloud-messaging-ile-push-notification-gonderimi-php-mysql/

Kolay gelsin..

picture-19298-1459404577.jpg
alper_beyler
28.09.2014 - 11:18

tamam çok saol deneyeceğim yine çözülmesse kodları buraya koyucam bakabilir misin ?

Ahmet Burak Demirkoparan
28.09.2014 - 12:36
Tabi ki burası o yüzden mevcut kodları koyarsanız bakarız çözüm buluruz belki.İyi çalışmalar
picture-19298-1459404577.jpg
alper_beyler
27.09.2014 - 11:44

öncelikle teşekkürler , biliyorum bu kaynağı zaten kullanmadıgım kaynak kalmadı :D bi türlü regId yi alamadım manifest ayarları dahi yaptım anlatıldığı gibiii 

picture-1372-1408467635.jpg
ahmtbrk
27.09.2014 - 10:07

Eğer alamıyorsan gcm reg id yi %99 bu manifeste girdiğin uygulama paketine dair şeyler yanlış olabilir.
Gcm ile ilgili dosyaların ana packagede mi yoksa sub bi packagede mi tutuyorsun.Geçenlerde benim dosyalar alt bi packagede iken bende de regId boş geliyordu daha sonra ana dizine çektim düzeldi.

http://www.androidhive.info/2012/10/android-push-notifications-using-google-cloud-messaging-gcm-php-and-mysql/

Bu kaynaktan yararlanmıştım bende.